Kernel: Python (ds_env)
In [6]:
import numpy as np import pandas as pd import plotly.express as px import matplotlib.pyplot as plt from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt
In [5]:
gun_data = pd.read_csv("gun-violence-data.csv") gun_data.head()
Out[5]:
incident_id date state city_or_county address n_killed n_injured incident_url source_url incident_url_fields_missing ... participant_age participant_age_group participant_gender participant_name participant_relationship participant_status participant_type sources state_house_district state_senate_district
0 461105 2013-01-01 Pennsylvania Mckeesport 1506 Versailles Avenue and Coursin Street 0 4 http://www.gunviolencearchive.org/incident/461105 http://www.post-gazette.com/local/south/2013/0... False ... 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female 0::Julian Sims NaN 0::Arrested||1::Injured||2::Injured||3::Injure... 0::Victim||1::Victim||2::Victim||3::Victim||4:... http://pittsburgh.cbslocal.com/2013/01/01/4-pe... NaN NaN
1 460726 2013-01-01 California Hawthorne 13500 block of Cerise Avenue 1 3 http://www.gunviolencearchive.org/incident/460726 http://www.dailybulletin.com/article/zz/201301... False ... 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male 0::Bernard Gillis NaN 0::Killed||1::Injured||2::Injured||3::Injured 0::Victim||1::Victim||2::Victim||3::Victim||4:... http://losangeles.cbslocal.com/2013/01/01/man-... 62.0 35.0
2 478855 2013-01-01 Ohio Lorain 1776 East 28th Street 1 3 http://www.gunviolencearchive.org/incident/478855 http://chronicle.northcoastnow.com/2013/02/14/... False ... 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male 0::Damien Bell||1::Desmen Noble||2::Herman Sea... NaN 0::Injured, Unharmed, Arrested||1::Unharmed, A... 0::Subject-Suspect||1::Subject-Suspect||2::Vic... http://www.morningjournal.com/general-news/201... 56.0 13.0
3 478925 2013-01-05 Colorado Aurora 16000 block of East Ithaca Place 4 0 http://www.gunviolencearchive.org/incident/478925 http://www.dailydemocrat.com/20130106/aurora-s... False ... 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male 0::Stacie Philbrook||1::Christopher Ratliffe||... NaN 0::Killed||1::Killed||2::Killed||3::Killed 0::Victim||1::Victim||2::Victim||3::Subject-Su... http://denver.cbslocal.com/2013/01/06/officer-... 40.0 28.0
4 478959 2013-01-07 North Carolina Greensboro 307 Mourning Dove Terrace 2 2 http://www.gunviolencearchive.org/incident/478959 http://www.journalnow.com/news/local/article_d... False ... 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 0::Danielle Imani Jameison||1::Maurice Eugene ... 3::Family 0::Injured||1::Injured||2::Killed||3::Killed 0::Victim||1::Victim||2::Victim||3::Subject-Su... http://myfox8.com/2013/01/08/update-mother-sho... 62.0 27.0

5 rows × 29 columns

Data Cleaning

In [164]:
columns_drop = ["incident_url", "source_url", "incident_url_fields_missing", "address", "participant_status", "sources", "latitude", "longitude", "state_house_district", "state_senate_district", "incident_id", "participant_name", "notes","location_description","congressional_district"] gun_data.drop(columns_drop, axis=1, inplace = True) #gun_data.dropna(inplace=True) gun_data.reset_index(drop=True, inplace=True)
In [121]:
gun_data.head(10)
Out[121]:
date state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type Adult Teen Child Male Female state code
0 2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 PA
1 2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 CA
2 2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic... 0 0 0 0 0 OH
3 2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su... 0 0 0 0 0 CO
4 2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su... 0 0 0 0 0 NC
5 2013-01-07 Oklahoma Tulsa 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Hom... NaN 0::23||1::23||2::33||3::55 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Female||2::Female||3::Female||4:... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 OK
6 2013-01-19 New Mexico Albuquerque 5 0 0::Unknown||1::Unknown 0::22 LR||1::223 Rem [AR-15] Shot - Dead (murder, accidental, suicide)||Mas... 2.0 0::51||1::40||2::9||3::5||4::2||5::15 0::Adult 18+||1::Adult 18+||2::Child 0-11||3::... 0::Male||1::Female||2::Male||3::Female||4::Fem... 5::Family 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 NM
7 2013-01-21 Louisiana New Orleans 0 5 NaN NaN Shot - Wounded/Injured||Drive-by (car to stree... NaN NaN NaN 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 LA
8 2013-01-21 California Brentwood 0 4 NaN NaN Shot - Wounded/Injured||Drive-by (car to stree... NaN NaN 0::Teen 12-17||1::Teen 12-17||2::Teen 12-17||4... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 CA
9 2013-01-23 Maryland Baltimore 1 6 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::15 0::Teen 12-17||1::Adult 18+||2::Adult 18+||3::... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 0 0 MD
In [7]:
words = ' '.join(i for i in gun_data['notes'].str.split(expand=True).stack().values.tolist()) stopwords = set(STOPWORDS) wordcloud = WordCloud(width = 800, height = 800, background_color ='white', stopwords = stopwords, min_font_size = 10).generate(words) # plot the WordCloud image plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis("off") plt.tight_layout(pad = 0) plt.show()
Out[7]:
Image in a Jupyter notebook
In [193]:
# initialize the columns gun_data['Adult'] = 0 gun_data['Teen'] = 0 gun_data['Child'] = 0 gun_data['Male'] = 0 gun_data['Female'] = 0 def age_Sorter(Row): temp = Row['participant_age_group'] if str(temp) == 'nan': return Row age_group = temp.split("||") if len(age_group) == 1: age_group = age_group[0].split("|") for age in age_group: a = age.split("::") if len(a) == 1: a = a[0].split(":") if a[1] == "Adult 18+": Row['Adult'] += 1 elif a[1] == "Teen 12-17": Row['Teen'] += 1 else: Row['Child'] += 1 for col in gun_data.columns: if col == 'participant_age_group': columns_drop = 'participant_age_group' return Row def gender_Sorter(Row): temp = Row['participant_gender'] if str(temp) == 'nan': return Row gender = temp.split("||") if len(gender) == 1: gender = gender[0].split("|") for gen in gender: g = gen.split("::") if len(g) == 1: g = g[0].split(":") if g[1] == "Male": Row['Male'] += 1 elif g[1] == "Female": Row['Female'] += 1 for col in gun_data.columns: if col == 'participant_gender': columns_drop = 'participant_gender' return Row gun_data = gun_data.apply(age_Sorter, axis = 1) gun_data = gun_data.apply(gender_Sorter, axis = 1) gun_data.head()
Out[193]:
state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type Adult Teen Child Male Female state code
date
2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 3 1 PA
2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 0 0 1 0 CA
2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic... 5 0 0 5 0 OH
2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su... 4 0 0 3 1 CO
2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su... 3 1 0 2 2 NC
In [0]:
In [38]:
Lcol = [] for col in gun_data.columns: if col == 'participant_gender': col = 'nan' else: Lcol.append(col)
Out[38]:
['date', 'state', 'city_or_county', 'n_killed', 'n_injured', 'gun_stolen', 'gun_type', 'incident_characteristics', 'n_guns_involved', 'participant_age', 'participant_age_group', 'participant_relationship', 'state code']

Dylan's

In [23]:
# add state code to states violence_data = pd.read_csv("gun-violence-data.csv") states = { 'Alabama': 'AL', 'Alaska': 'AK', 'American Samoa': 'AS', 'Arizona': 'AZ', 'Arkansas': 'AR', 'California': 'CA', 'Colorado': 'CO', 'Connecticut': 'CT', 'Delaware': 'DE', 'District of Columbia': 'DC', 'Florida': 'FL', 'Georgia': 'GA', 'Guam': 'GU', 'Hawaii': 'HI', 'Idaho': 'ID', 'Illinois': 'IL', 'Indiana': 'IN', 'Iowa': 'IA', 'Kansas': 'KS', 'Kentucky': 'KY', 'Louisiana': 'LA', 'Maine': 'ME','Maryland': 'MD', 'Massachusetts': 'MA', 'Michigan': 'MI', 'Minnesota': 'MN', 'Mississippi': 'MS', 'Missouri': 'MO', 'Montana': 'MT', 'Nebraska': 'NE', 'Nevada': 'NV', 'New Hampshire': 'NH', 'New Jersey': 'NJ', 'New Mexico': 'NM', 'New York': 'NY', 'North Carolina': 'NC', 'North Dakota': 'ND', 'Northern Mariana Islands':'MP', 'Ohio': 'OH', 'Oklahoma': 'OK', 'Oregon': 'OR', 'Pennsylvania': 'PA', 'Puerto Rico': 'PR', 'Rhode Island': 'RI', 'South Carolina': 'SC', 'South Dakota': 'SD', 'Tennessee': 'TN', 'Texas': 'TX', 'Utah': 'UT', 'Vermont': 'VT','Virgin Islands': 'VI', 'Virginia': 'VA', 'Washington': 'WA', 'West Virginia': 'WV', 'Wisconsin': 'WI', 'Wyoming': 'WY' } violence_data['state code'] = violence_data['state'].apply(lambda x : states[x]) ViolenceChart = violence_data.groupby('state code')[['n_killed', 'n_guns_involved']].sum().sort_values(by = "n_killed",ascending = False).reset_index().head(25) ViolenceChart.plot.pie(y="n_guns_involved")
Out[23]:
<AxesSubplot:ylabel='n_guns_involved'>
Image in a Jupyter notebook
In [248]:
fig = px.choropleth(violence_data.groupby('state code')['n_killed'].sum().reset_index(), locations='state code', locationmode="USA-states", color='n_killed', scope="usa", color_continuous_scale="Viridis") fig.show()
Out[248]:
In [45]:
In [0]:

If the shooter is an adult, there will be a greater amount of weapons used.

In [11]:
gun_data_edited = pd.read_csv("gun-violence-data.csv") columns_drop_two = ["incident_url", "source_url", "incident_url_fields_missing", "address", "participant_status", "sources", "latitude", "longitude", "state_house_district", "state_senate_district", "incident_id", "participant_name", "notes","location_description","congressional_district"] gun_data_edited.drop(columns_drop_two, axis=1, inplace = True) #gun_data.dropna(inplace=True) gun_data_edited.reset_index(drop=True, inplace=True)
In [0]:
In [0]:
In [24]:
gun_data_edited['Adult'] = 0 gun_data_edited['Teen'] = 0 gun_data_edited['Child'] = 0 gun_data_edited['Male'] = 0 gun_data_edited['Female'] = 0 def age_Sorter_Two(Row): temp = Row['participant_age_group'] if str(temp) == "nan": return Row #print(temp) age_group = temp.split("||") if len(age_group) == 1: age_group = age_group[0].split("|") for age in age_group: a = age.split("::") if len(a) == 1: a = a[0].split(":") if a[1] == "Adult 18+": Row['Adult'] += 1 elif a[1] == "Teen 12-17": Row['Teen'] += 1 else: Row['Child'] += 1 for col in gun_data_edited.columns: if col == 'participant_age_group': columns_drop = 'participant_age_group' return Row def gender_Sorter_Two(Row): temp = Row['participant_gender'] if str(temp) == "nan": return Row gender = temp.split("||") if len(gender) == 1: gender = gender[0].split("|") for gen in gender: g = gen.split("::") if len(g) == 1: g = g[0].split(":") if g[1] == "Male": Row['Male'] += 1 elif g[1] == "Female": Row['Female'] += 1 for col in gun_data_edited.columns: if col == 'participant_gender': columns_drop = 'participant_gender' return Row gun_data_edited = gun_data_edited.apply(age_Sorter_Two, axis = 1) gun_data_edited = gun_data_edited.apply(gender_Sorter_Two, axis = 1) gun_data_edited.head()
Out[24]:
date state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type Adult Teen Child Male Female
0 2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 3 1
1 2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 0 0 1 0
2 2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic... 5 0 0 5 0
3 2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su... 4 0 0 3 1
4 2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su... 3 1 0 2 2
In [239]:
#adultNumOfGun = px.scatter(gun_data_edited, x="Adult", y="n_guns_involved") #adultNumOfGun.show()
In [10]:
#Create a histogram of another column of your choice below. gun_data_edited.hist('Adult')
Out[10]:
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Input In [10], in <cell line: 2>() 1 #Create a histogram of another column of your choice below. ----> 2 gun_data_edited.hist('Adult') NameError: name 'gun_data_edited' is not defined
In [190]:
gun_data_edited.head(30)
Out[190]:
date state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type Adult Teen Child Male Female
0 2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 3 1
1 2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 0 0 1 0
2 2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic... 5 0 0 5 0
3 2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su... 4 0 0 3 1
4 2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su... 3 1 0 2 2
5 2013-01-07 Oklahoma Tulsa 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Hom... NaN 0::23||1::23||2::33||3::55 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Female||2::Female||3::Female||4:... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 0 0 2 4
6 2013-01-19 New Mexico Albuquerque 5 0 0::Unknown||1::Unknown 0::22 LR||1::223 Rem [AR-15] Shot - Dead (murder, accidental, suicide)||Mas... 2.0 0::51||1::40||2::9||3::5||4::2||5::15 0::Adult 18+||1::Adult 18+||2::Child 0-11||3::... 0::Male||1::Female||2::Male||3::Female||4::Fem... 5::Family 0::Victim||1::Victim||2::Victim||3::Victim||4:... 2 1 3 3 3
7 2013-01-21 Louisiana New Orleans 0 5 NaN NaN Shot - Wounded/Injured||Drive-by (car to stree... NaN NaN NaN 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 0 0 0 5 0
8 2013-01-21 California Brentwood 0 4 NaN NaN Shot - Wounded/Injured||Drive-by (car to stree... NaN NaN 0::Teen 12-17||1::Teen 12-17||2::Teen 12-17||4... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 1 3 0 5 0
9 2013-01-23 Maryland Baltimore 1 6 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::15 0::Teen 12-17||1::Adult 18+||2::Adult 18+||3::... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 1 0 1 0
10 2013-01-23 Tennessee Chattanooga 1 3 0::Unknown 0::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 0::19 0::Adult 18+ 0::Male||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 1 0 0 4 0
11 2013-01-25 Missouri Saint Louis 1 3 0::Unknown 0::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 0::28 0::Adult 18+ 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 1 0 0 1 0
12 2013-01-26 Louisiana Charenton 2 3 0::Unknown 0::Shotgun Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 3::78||4::48 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 5 0
13 2013-01-26 District of Columbia Washington 0 5 0::Unknown 0::Handgun Shot - Wounded/Injured||Mass Shooting (4+ vict... 1.0 NaN 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Female||2::Male||3::Male||4::Mal... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 0 0 4 2
14 2013-01-26 Ohio Springfield 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::34||1::28||2::23||3::29||4::29 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 5 0
15 2013-02-02 Tennessee Memphis 0 5 0::Unknown 0::Handgun Shot - Wounded/Injured||Mass Shooting (4+ vict... 1.0 5::24 0::Adult 18+||1::Adult 18+||2::Adult 18+||4::A... 0::Female||1::Female||2::Female||3::Female||4:... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 0 6
16 2013-02-03 California Yuba (county) 1 3 0::Unknown 0::9mm Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 0::20||4::25||5::18||6::19 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Female||4::Male||5::Male|... 4::Drive by - Random victims||5::Drive by - Ra... 0::Victim||1::Victim||2::Victim||3::Victim||4:... 7 0 0 5 1
17 2013-02-07 Illinois Chicago 0 4 NaN NaN Shot - Wounded/Injured||Drive-by (car to stree... NaN 0::18||1::41||2::28||3::28 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 0 0 4 0
18 2013-02-09 Louisiana New Orleans 0 4 0::Unknown 0::Handgun Shot - Wounded/Injured||Mass Shooting (4+ vict... 1.0 0::18||1::22||2::21||3::29||4::19||5::22||6::23 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Female||2::Female||3::Male||4::Mal... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 7 0 0 5 2
19 2013-02-11 California Vallejo 1 4 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::22 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Female||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 3 2
20 2013-02-11 Delaware Wilmington 3 2 0::Unknown 0::45 Auto Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 1::39||4::68 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Female||2::Male||3::Male||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 3 2
21 2013-02-12 Utah Midvale 4 1 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::35||1::34||2::26||4::25 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Female||4::Male|... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 0 0 5 1
22 2013-02-19 California Orange (county) 4 3 0::Unknown 0::12 gauge Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 0::20||4::69||5::27||6::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||4::Male||5::Male||6::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 7 0 0 3 1
23 2013-02-21 Oklahoma Tulsa 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::18||1::18||2::18||3::19||4::41 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Female||4::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0 4 1
24 2013-02-22 Michigan Grand Rapids 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN NaN 0::Adult 18+||1::Adult 18+ 0::Male||1::Male||2::Male||3::Male||4::Female NaN 0::Subject-Suspect||1::Victim||2::Victim||3::V... 2 0 0 4 1
25 2013-02-23 California Lancaster 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::22||1::26||2::29||3::37 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 0 0 4 0
26 2013-02-24 Georgia Macon 0 8 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 8::29 0::Adult 18+||2::Adult 18+||3::Adult 18+||4::A... 0::Male||1::Male||2::Male||3::Male||4::Male||5... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 8 0 0 7 2
27 2013-03-02 Louisiana Shreveport 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::18||1::18||2::18||3::19||4::15||5::17 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male||5... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 2 0 6 0
28 2013-03-03 Georgia Moultrie 2 2 0::Unknown 0::7.62 [AK-47] Shot - Wounded/Injured||Shot - Dead (murder, a... 1.0 0::50||1::42||4::24||5::25 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Female||3::Male||4::Male|... NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 6 0 0 5 1
29 2013-03-03 Michigan Saginaw (county) 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::23||1::34||2::17||3::25 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Male||1::Male||2::Female||3::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim 3 1 0 2 2
In [195]:
tempTwo = row['n_guns_involved'] for if str(TempTwo) == "nan": pass else: gun_data_edited['n_guns_involved'].astype(int) gun_data_edited.head()
Out[195]:
--------------------------------------------------------------------------- IntCastingNaNError Traceback (most recent call last) Input In [195], in <cell line: 1>() ----> 1 gun_data_edited['n_guns_involved'].astype(int) 3 gun_data_edited.head() File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/generic.py:5912, in NDFrame.astype(self, dtype, copy, errors) 5905 results = [ 5906 self.iloc[:, i].astype(dtype, copy=copy) 5907 for i in range(len(self.columns)) 5908 ] 5910 else: 5911 # else, only a single dtype is given -> 5912 new_data = self._mgr.astype(dtype=dtype, copy=copy, errors=errors) 5913 return self._constructor(new_data).__finalize__(self, method="astype") 5915 # GH 33113: handle empty frame or series File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/internals/managers.py:419, in BaseBlockManager.astype(self, dtype, copy, errors) 418 def astype(self: T, dtype, copy: bool = False, errors: str = "raise") -> T: --> 419 return self.apply("astype", dtype=dtype, copy=copy, errors=errors) File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/internals/managers.py:304, in BaseBlockManager.apply(self, f, align_keys, ignore_failures, **kwargs) 302 applied = b.apply(f, **kwargs) 303 else: --> 304 applied = getattr(b, f)(**kwargs) 305 except (TypeError, NotImplementedError): 306 if not ignore_failures: File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/internals/blocks.py:580, in Block.astype(self, dtype, copy, errors) 562 """ 563 Coerce to the new dtype. 564 (...) 576 Block 577 """ 578 values = self.values --> 580 new_values = astype_array_safe(values, dtype, copy=copy, errors=errors) 582 new_values = maybe_coerce_values(new_values) 583 newb = self.make_block(new_values) File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/dtypes/cast.py:1292, in astype_array_safe(values, dtype, copy, errors) 1289 dtype = dtype.numpy_dtype 1291 try: -> 1292 new_values = astype_array(values, dtype, copy=copy) 1293 except (ValueError, TypeError): 1294 # e.g. astype_nansafe can fail on object-dtype of strings 1295 # trying to convert to float 1296 if errors == "ignore": File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/dtypes/cast.py:1237, in astype_array(values, dtype, copy) 1234 values = values.astype(dtype, copy=copy) 1236 else: -> 1237 values = astype_nansafe(values, dtype, copy=copy) 1239 # in pandas we don't store numpy str dtypes, so convert to object 1240 if isinstance(dtype, np.dtype) and issubclass(values.dtype.type, str): File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/dtypes/cast.py:1148, in astype_nansafe(arr, dtype, copy, skipna) 1145 raise TypeError(f"cannot astype a timedelta from [{arr.dtype}] to [{dtype}]") 1147 elif np.issubdtype(arr.dtype, np.floating) and np.issubdtype(dtype, np.integer): -> 1148 return astype_float_to_int_nansafe(arr, dtype, copy) 1150 elif is_object_dtype(arr.dtype): 1151 1152 # work around NumPy brokenness, #1987 1153 if np.issubdtype(dtype.type, np.integer): File ~/miniconda3/envs/ds_env/lib/python3.8/site-packages/pandas/core/dtypes/cast.py:1193, in astype_float_to_int_nansafe(values, dtype, copy) 1189 """ 1190 astype with a check preventing converting NaN to an meaningless integer value. 1191 """ 1192 if not np.isfinite(values).all(): -> 1193 raise IntCastingNaNError( 1194 "Cannot convert non-finite values (NA or inf) to integer" 1195 ) 1196 return values.astype(dtype, copy=copy) IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer
In [0]:
#The correlation between the state the shooting happend in and the amount of injured people. (Kathryn)
In [196]:
gun_info = pd.read_csv("gun-violence-data.csv") columns_drop = ["incident_url", "source_url", "incident_url_fields_missing", "address", "participant_status", "sources", "latitude", "longitude", "state_house_district", "state_senate_district", "incident_id", "participant_name", "notes","location_description","congressional_district"] gun_info.drop(columns_drop, axis=1, inplace = True) gun_info.reset_index(drop=True, inplace=True) gun_info.head()
Out[196]:
date state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type
0 2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:...
1 2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:...
2 2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic...
3 2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su...
4 2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su...
In [201]:
gun_info.info()
Out[201]:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 239677 entries, 0 to 239676 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 239677 non-null object 1 state 239677 non-null object 2 city_or_county 239677 non-null object 3 n_killed 239677 non-null int64 4 n_injured 239677 non-null int64 5 gun_stolen 140179 non-null object 6 gun_type 140226 non-null object 7 incident_characteristics 239351 non-null object 8 n_guns_involved 140226 non-null float64 9 participant_age 147379 non-null object 10 participant_age_group 197558 non-null object 11 participant_gender 203315 non-null object 12 participant_relationship 15774 non-null object 13 participant_type 214814 non-null object dtypes: float64(1), int64(2), object(11) memory usage: 25.6+ MB
In [256]:
fig = px.scatter(gun_info, x = "state", y = "n_killed") fig.show()
Out[256]:
In [257]:
fig = px.scatter(gun_info, x = "state", y = "n_injured") fig.show()
Out[257]:

When a teen or adult is able to posses a firearm without owning it, it will result in a shooting.(Logan)

In [21]:
gun_relation = pd.read_csv("gun-violence-data.csv") columns_drop = ["incident_url", "source_url", "incident_url_fields_missing", "address", "participant_status", "sources", "latitude", "longitude", "state_house_district", "state_senate_district", "incident_id", "participant_name", "notes","location_description","congressional_district"] gun_relation.drop(columns_drop, axis=1, inplace = True) #gun_relation.dropna(inplace=True) gun_relation.reset_index(drop=True, inplace=True)
In [25]:
gun_relation['Adult'] = 0 gun_relation['Teen'] = 0 gun_relation['Child'] = 0 def age_Sorter2(Row): temp = Row['participant_age_group'] if str(temp) == "nan": return Row age_group = temp.split("||") if len(age_group) == 1: age_group = age_group[0].split("|") for age in age_group: a = age.split("::") if len(a) == 1: a = a[0].split(":") if a[1] == "Adult 18+": Row['Adult'] += 1 elif a[1] == "Teen 12-17": Row['Teen'] += 1 else: Row['Child'] += 1 for col in gun_relation.columns: if col == 'participant_age_group': columns_drop = 'participant_age_group' return Row gun_relation = gun_relation.apply(age_Sorter2, axis = 1)
In [186]:
gun_relation.head()
Out[186]:
date state city_or_county n_killed n_injured gun_stolen gun_type incident_characteristics n_guns_involved participant_age participant_age_group participant_gender participant_relationship participant_type Adult Teen Child
0 2013-01-01 Pennsylvania Mckeesport 0 4 NaN NaN Shot - Wounded/Injured||Mass Shooting (4+ vict... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||3::Male||4::Female NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 5 0 0
1 2013-01-01 California Hawthorne 1 3 NaN NaN Shot - Wounded/Injured||Shot - Dead (murder, a... NaN 0::20 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male NaN 0::Victim||1::Victim||2::Victim||3::Victim||4:... 4 0 0
2 2013-01-01 Ohio Lorain 1 3 0::Unknown||1::Unknown 0::Unknown||1::Unknown Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::25||1::31||2::33||3::34||4::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Male||1::Male||2::Male||3::Male||4::Male NaN 0::Subject-Suspect||1::Subject-Suspect||2::Vic... 5 0 0
3 2013-01-05 Colorado Aurora 4 0 NaN NaN Shot - Dead (murder, accidental, suicide)||Off... NaN 0::29||1::33||2::56||3::33 0::Adult 18+||1::Adult 18+||2::Adult 18+||3::A... 0::Female||1::Male||2::Male||3::Male NaN 0::Victim||1::Victim||2::Victim||3::Subject-Su... 4 0 0
4 2013-01-07 North Carolina Greensboro 2 2 0::Unknown||1::Unknown 0::Handgun||1::Handgun Shot - Wounded/Injured||Shot - Dead (murder, a... 2.0 0::18||1::46||2::14||3::47 0::Adult 18+||1::Adult 18+||2::Teen 12-17||3::... 0::Female||1::Male||2::Male||3::Female 3::Family 0::Victim||1::Victim||2::Victim||3::Subject-Su... 3 1 0
In [221]:
import plotly.express as px teen_shooting = px.scatter(gun_relation, x='n_killed', y='Teen') teen_shooting.show()
Out[221]:
In [219]:
import plotly.express as px teen_shooting_injury = px.scatter(gun_relation, x='n_injured', y='Teen') teen_shooting_injury.show()
Out[219]:
In [26]:
gun_relation['Adult'].unique()
Out[26]:
array([ 5, 4, 3, 6, 2, 0, 1, 7, 8, 16, 10, 18, 17, 12, 9, 14, 15, 22, 11, 20, 29, 13, 19, 30, 21, 33, 63, 103, 24, 25, 27, 28, 32])
In [0]:
import plotly.express as px adult_shooting_injury = px.bar(gun_relation, x='n_injured', y='Adult') adult_shooting_injury.show()
In [232]:
import plotly.express as px adult_shooting = px.scatter(gun_relation, x='n_killed', y='Adult') adult_shooting.show()
Out[232]:
In [214]:
plt.style.use("fivethirtyeight") plt.figure(figsize=(30, 10)) plt.xlabel("Date") plt.ylabel("Values") plt.title("Sample Time Series Plot") plt.plot(gun_data["n_killed"])
Out[214]:
[<matplotlib.lines.Line2D at 0x7f33736cdbe0>]
Image in a Jupyter notebook
In [0]:
period_length = 5 start_year = 2013 end_year = 2018 df = df[(df['YEAR'] >= start) & (df['YEAR'] <= 2019)]